package com.flx.jvm;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: Fenglixiong
 * @Date: 2020/8/26 19:38
 * @Description: 堆区的eden区、s0、s1等青年代和老年代之间的空间GC变化
 * 设置参数：-Xms2048m -Xmx2048m -Xmn1024m -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M
 * 含义是：初始堆空间为2G，最大堆空间2G。其中新生代1G，老年代1G。初次触发方法区GC为512M
 * 现象：首先Eden区不管增大，满了之后回收进入老年代（为啥不进s0，因为空间太小），老年代也进行回收FullGC
 * 最后的结果是：出现OOM
 */
public class JvmHeapTest {

    byte[] a = new byte[1024*100];//100kb

    public static void main(String[] args) {

        List<JvmHeapTest> personList = new ArrayList<JvmHeapTest>();
        while (true){
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            personList.add(new JvmHeapTest());
        }

    }

}
